Polar codes are alternative Forward Error Correction (FEC) codes similar to Turbo codes or Low Density Parity Check (LDPC) codes. A polar code is a linear block error correcting code, and the code construction is based on a multiple recursive concatenation of a short kernel code which transforms the physical channel into virtual outer channels. When the number of recursions becomes large, the virtual channels tend to either have high reliability or low reliability (in other words, they polarize), and the data bits are allocated to the most reliable channels. Typically, list decoding of polar codes has high latency and leads to inefficient use of the hardware. Therefore, there is a need for a polar code decoder providing high throughput and efficient use of the hardware.